home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xalan.jar / org / apache / xalan / xslt / XSLTEngineImpl$ResultTreeHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-12  |  6.6 KB  |  278 lines

  1. package org.apache.xalan.xslt;
  2.  
  3. import org.apache.xalan.xpath.xml.FormatterToDOM;
  4. import org.apache.xalan.xpath.xml.FormatterToXML;
  5. import org.apache.xalan.xpath.xml.RawCharacterHandler;
  6. import org.apache.xalan.xslt.trace.GenerateEvent;
  7. import org.xml.sax.AttributeList;
  8. import org.xml.sax.DocumentHandler;
  9. import org.xml.sax.Locator;
  10. import org.xml.sax.SAXException;
  11. import org.xml.sax.ext.LexicalHandler;
  12.  
  13. class XSLTEngineImpl$ResultTreeHandler implements DocumentHandler, RawCharacterHandler, LexicalHandler {
  14.    // $FF: synthetic field
  15.    private final XSLTEngineImpl this$0;
  16.  
  17.    public void setDocumentLocator(Locator var1) {
  18.    }
  19.  
  20.    public void startDocument() throws SAXException {
  21.       this.this$0.m_uniqueNSValue = 0;
  22.       this.this$0.m_pendingStartDoc = true;
  23.       this.this$0.m_mustFlushStartDoc = false;
  24.       if (this.this$0.m_traceListeners != null) {
  25.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 1));
  26.       }
  27.  
  28.    }
  29.  
  30.    public void endDocument() throws SAXException {
  31.       this.this$0.m_mustFlushStartDoc = true;
  32.       this.this$0.flushPending();
  33.       this.this$0.m_flistener.endDocument();
  34.       if (this.this$0.m_traceListeners != null) {
  35.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 2));
  36.       }
  37.  
  38.       XSLTEngineImpl.access$0(this.this$0).popCurrentContext();
  39.    }
  40.  
  41.    public void startElement(String var1) throws SAXException {
  42.       this.this$0.flushPending();
  43.       this.this$0.m_resultNameSpaces.push(XSLTEngineImpl.m_emptyNamespace);
  44.       this.this$0.m_pendingElementName = var1;
  45.       this.this$0.m_mustFlushStartDoc = true;
  46.    }
  47.  
  48.    public void startElement(String var1, AttributeList var2) throws SAXException {
  49.       this.this$0.flushPending();
  50.       int var3 = var2.getLength();
  51.       this.this$0.m_pendingAttributes.clear();
  52.  
  53.       for(int var4 = 0; var4 < var3; ++var4) {
  54.          this.this$0.m_pendingAttributes.addAttribute(var2.getName(var4), var2.getType(var4), var2.getValue(var4));
  55.       }
  56.  
  57.       this.this$0.m_resultNameSpaces.push(XSLTEngineImpl.m_emptyNamespace);
  58.       this.this$0.m_pendingElementName = var1;
  59.       this.this$0.m_mustFlushStartDoc = true;
  60.    }
  61.  
  62.    public void endElement(String var1) throws SAXException {
  63.       this.this$0.flushPending();
  64.       this.this$0.m_flistener.endElement(var1);
  65.       if (this.this$0.m_traceListeners != null) {
  66.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 4, var1, (AttributeList)null));
  67.       }
  68.  
  69.       this.this$0.m_resultNameSpaces.pop();
  70.       if (this.this$0.m_stylesheetRoot.m_cdataSectionElems != null) {
  71.          this.this$0.m_cdataStack.pop();
  72.       }
  73.  
  74.    }
  75.  
  76.    public void characters(char[] var1, int var2, int var3) throws SAXException {
  77.       if (!this.this$0.m_mustFlushStartDoc) {
  78.          int var4 = var1.length;
  79.  
  80.          for(int var5 = 0; var5 < var4; ++var5) {
  81.             if (!Character.isSpaceChar(var1[var5])) {
  82.                this.this$0.m_mustFlushStartDoc = true;
  83.                break;
  84.             }
  85.          }
  86.       }
  87.  
  88.       if (this.this$0.m_mustFlushStartDoc) {
  89.          this.this$0.flushPending();
  90.          if (this.this$0.m_stylesheetRoot.m_cdataSectionElems != null && !this.this$0.m_cdataStack.isEmpty() && this.this$0.m_cdataStack.peek() == XSLTEngineImpl.access$1()) {
  91.             boolean var6 = this.this$0.m_flistener instanceof LexicalHandler;
  92.             if (var6) {
  93.                ((LexicalHandler)this.this$0.m_flistener).startCDATA();
  94.             }
  95.  
  96.             this.this$0.m_flistener.characters(var1, var2, var3);
  97.             if (var6) {
  98.                ((LexicalHandler)this.this$0.m_flistener).endCDATA();
  99.             }
  100.  
  101.             if (this.this$0.m_traceListeners != null) {
  102.                this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 10, var1, var2, var3));
  103.                return;
  104.             }
  105.          } else {
  106.             this.this$0.m_flistener.characters(var1, var2, var3);
  107.             if (this.this$0.m_traceListeners != null) {
  108.                this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 5, var1, var2, var3));
  109.             }
  110.          }
  111.       }
  112.  
  113.    }
  114.  
  115.    public void charactersRaw(char[] var1, int var2, int var3) throws SAXException {
  116.       this.this$0.m_mustFlushStartDoc = true;
  117.       this.this$0.flushPending();
  118.       if (this.this$0.m_flistener instanceof FormatterToXML) {
  119.          ((FormatterToXML)this.this$0.m_flistener).charactersRaw(var1, var2, var3);
  120.       } else if (this.this$0.m_flistener instanceof FormatterToDOM) {
  121.          ((FormatterToDOM)this.this$0.m_flistener).charactersRaw(var1, var2, var3);
  122.       } else {
  123.          this.this$0.m_flistener.characters(var1, var2, var3);
  124.       }
  125.  
  126.       if (this.this$0.m_traceListeners != null) {
  127.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 5, var1, var2, var3));
  128.       }
  129.  
  130.    }
  131.  
  132.    public void ignorableWhitespace(char[] var1, int var2, int var3) throws SAXException {
  133.       if (this.this$0.m_mustFlushStartDoc) {
  134.          this.this$0.flushPending();
  135.          this.this$0.m_flistener.ignorableWhitespace(var1, var2, var3);
  136.          if (this.this$0.m_traceListeners != null) {
  137.             this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 6, var1, var2, var3));
  138.          }
  139.       }
  140.  
  141.    }
  142.  
  143.    public void processingInstruction(String var1, String var2) throws SAXException {
  144.       this.this$0.m_mustFlushStartDoc = true;
  145.       this.this$0.flushPending();
  146.       this.this$0.m_flistener.processingInstruction(var1, var2);
  147.       if (this.this$0.m_traceListeners != null) {
  148.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 7, var1, var2));
  149.       }
  150.  
  151.    }
  152.  
  153.    public void comment(String var1) throws SAXException {
  154.       this.this$0.m_mustFlushStartDoc = true;
  155.       this.this$0.flushPending();
  156.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  157.          ((LexicalHandler)this.this$0.m_flistener).comment(var1.toCharArray(), 0, var1.length());
  158.       }
  159.  
  160.       if (this.this$0.m_traceListeners != null) {
  161.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 8, var1));
  162.       }
  163.  
  164.    }
  165.  
  166.    public void comment(char[] var1, int var2, int var3) throws SAXException {
  167.       this.this$0.m_mustFlushStartDoc = true;
  168.       this.this$0.flushPending();
  169.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  170.          ((LexicalHandler)this.this$0.m_flistener).comment(var1, var2, var3);
  171.       }
  172.  
  173.       if (this.this$0.m_traceListeners != null) {
  174.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 8, new String(var1, var2, var3)));
  175.       }
  176.  
  177.    }
  178.  
  179.    public void entityReference(String var1) throws SAXException {
  180.       this.this$0.m_mustFlushStartDoc = true;
  181.       this.this$0.flushPending();
  182.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  183.          ((LexicalHandler)this.this$0.m_flistener).startEntity(var1);
  184.          ((LexicalHandler)this.this$0.m_flistener).endEntity(var1);
  185.       }
  186.  
  187.       if (this.this$0.m_traceListeners != null) {
  188.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 9, var1));
  189.       }
  190.  
  191.    }
  192.  
  193.    public void startEntity(String var1) throws SAXException {
  194.       this.this$0.m_mustFlushStartDoc = true;
  195.       this.this$0.flushPending();
  196.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  197.          ((LexicalHandler)this.this$0.m_flistener).startEntity(var1);
  198.       }
  199.  
  200.    }
  201.  
  202.    public void endEntity(String var1) throws SAXException {
  203.       this.this$0.m_mustFlushStartDoc = true;
  204.       this.this$0.flushPending();
  205.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  206.          ((LexicalHandler)this.this$0.m_flistener).endEntity(var1);
  207.       }
  208.  
  209.       if (this.this$0.m_traceListeners != null) {
  210.          this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 9, var1));
  211.       }
  212.  
  213.    }
  214.  
  215.    public void startDTD(String var1, String var2, String var3) throws SAXException {
  216.       this.this$0.flushPending();
  217.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  218.          ((LexicalHandler)this.this$0.m_flistener).startDTD(var1, var2, var3);
  219.       }
  220.  
  221.    }
  222.  
  223.    public void endDTD() throws SAXException {
  224.       this.this$0.flushPending();
  225.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  226.          ((LexicalHandler)this.this$0.m_flistener).endDTD();
  227.       }
  228.  
  229.    }
  230.  
  231.    public void startCDATA() throws SAXException {
  232.       this.this$0.flushPending();
  233.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  234.          ((LexicalHandler)this.this$0.m_flistener).startCDATA();
  235.       }
  236.  
  237.    }
  238.  
  239.    public void endCDATA() throws SAXException {
  240.       this.this$0.flushPending();
  241.       if (this.this$0.m_flistener instanceof LexicalHandler) {
  242.          ((LexicalHandler)this.this$0.m_flistener).endCDATA();
  243.       }
  244.  
  245.    }
  246.  
  247.    public void cdata(char[] var1, int var2, int var3) throws SAXException {
  248.       this.this$0.m_mustFlushStartDoc = true;
  249.       this.this$0.flushPending();
  250.       if (this.this$0.m_stylesheetRoot.m_cdataSectionElems != null && !this.this$0.m_cdataStack.isEmpty() && this.this$0.m_cdataStack.peek() == XSLTEngineImpl.access$1()) {
  251.          if (this.this$0.m_flistener instanceof LexicalHandler) {
  252.             ((LexicalHandler)this.this$0.m_flistener).startCDATA();
  253.          }
  254.  
  255.          this.this$0.m_flistener.characters(var1, var2, var3);
  256.          if (this.this$0.m_flistener instanceof LexicalHandler) {
  257.             ((LexicalHandler)this.this$0.m_flistener).endCDATA();
  258.          }
  259.  
  260.          if (this.this$0.m_traceListeners != null) {
  261.             this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 10, var1, var2, var3));
  262.             return;
  263.          }
  264.       } else {
  265.          this.this$0.m_flistener.characters(var1, var2, var3);
  266.          if (this.this$0.m_traceListeners != null) {
  267.             this.this$0.fireGenerateEvent(new GenerateEvent(this.this$0, 5, var1, var2, var3));
  268.          }
  269.       }
  270.  
  271.    }
  272.  
  273.    XSLTEngineImpl$ResultTreeHandler(XSLTEngineImpl var1) {
  274.       this.this$0 = var1;
  275.       this.this$0 = var1;
  276.    }
  277. }
  278.